1. Field of the Invention
This invention relates to the field of graphical user interfaces for human-computer interactions. Specifically, this invention is a method, apparatus and computer program product for providing a unified chooser interface to a heterogeneous collection of entities accessible through different access methods from a computer.
2. Background
Modern graphical user interfaces (GUI) allow computer users to choose one or more entities from a set of possible entities. Generally the GUI presents the user with a listing of entities within a "chooser dialog". The user chooses one or more of the listed entities by using a pointing device. This approach has been used in the prior art to allow a user to choose between files, or between printers, or between communication options or between other homogeneous entities. One example of a common use of a chooser is to present a list of files in an "open-file" dialog. These "open-file" choosers generally distinguish between normal files and directory files. Directory files have information about other files that are contained in the directory. A directory file is an example of a container entity. A user can expand (drill-into) a directory to view the files it contains. Thus, the user can examine or navigate through the file system by using the chooser's expansion capabilities. A user can also select one of the displayed files for processing by the application that invoked the dialog. Another prior art approach is to use a tree structure to present the files and directories contained within the filesystem. This approach provides the user with a graphical representation of the location of a file in the filesystem. Command line interfaces can also provide the capability to list directory contents and to drill-into subdirectories.
Prior art file choosers use the computer's filesystem to access files. The chooser is unable to access entities (such as files) that are not accessible through the computer's filesystem. For example, prior art file choosers do not access files through the world wide web (WWW).
The WWW is a hypertext system that a computer user navigates through by using a WWW browser application. The WWW browser application communicates with WWW server computer applications to obtain information and services in the form of web pages. These web pages are identified by unique uniform resource locators (URL). The information provided to the user of a WWW browser application often includes references to other related information. These references are hyperlinks. Hyperlinks often include a URL used to access the reference. Activating these hyperlinks often results in accessing completely different web pages (supplied from completely different WWW server applications on other computer systems) from the web page that contains the hyperlink. A user often navigates through many hyperlinks to reach the user's desired information or service.
A user of a WWW browser activates a hyperlink to display the contents of the web page referenced by the URL associated with the hyperlink. The browser formats the information contained in the referenced web page according to a page markup language such as HTML. HTML allows URLs to be embedded within tags. These tags are distributed throughout the HTML data as appropriate for the presentation of the information defined by the HTML data. One skilled in the art will understand that a browser's presentation of HTML data does not provide a simple way to choose a URL contained in the HTML data because the URL is not accessible from within the formatted web page. Instead, the text or graphic associated with the URL, by the tag, is displayed. Further, one skilled in the art will understand that the URLs contained in a web page are not presented to the user in any sorted order. This is because the URLs are embedded within the web page dependent on the page layout desired by the web page designer. Thus, it would be advantageous to provide a chooser mechanism to the user for selecting a URL from the HTML that defines a web page. In addition it would be advantageous to allow the user to drill-into container entities, such as HTML data, that contain URLs. This capability would enable the user to navigate the WWW through the URLs instead of displayed web pages. This capability also provides the user with the ability to choose resources or entities defined by URLs in the same manner as the user chooses a file.
Microsoft's Internet Explorer.RTM. (version 4.0) browser application allows the user to examine information accessible from the local computer's desktop (such as files and devices) and presents formatted HTML data accessed from the internet. However, this browser does not uniformly display the obtained information. Instead, the Internet Explorer browser displays information obtained from accessing the computer's desktop differently from the information obtained from accessing the internet. In particular, although the contents of the desktop are displayed in a hierarchical manner, the Internet Explorer browser only provides a simple list of the titles of web pages that have been accessed by the browser. (The displayed title is obtained from a tag within the HTML data.) Thus, accessible entities contained in the HTML data are not presented to the user unless the HTML data is formatted and displayed to the user. Although the titles of web pages accessed by the user are presented, the URLs of web pages that were not followed, nor the URLs of other data files (such as HTML referenced image files) are not displayed to the user. Thus, the Internet Explorer browser does not treat internet accessible entities as container entities even though the web page data contains URLs to other entities. Therefor, the Internet Explorer browser does not uniformly present entities to the user because it presents container entities from the desktop differently from container entities from the internet.
The background of the World Wide Web (WWW) and WWW browsers are well understood in the art. The URL specification is described in RFC-1738 that can be found on the WWW at: